package com.jmp.base;

import com.jmp.base.dto.*;
import one.stand.model.ResultModel;
import one.stand.response.LoginResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 安全接口API
 */
public interface SecurityApi {
    /**
     * 智慧展厅登录二维码
     */
    @PostMapping("security/showroom/login/img")
    ResultModel<ShowroomLoginImgResponse> showroomLoginImg(@RequestBody ShowroomLoginImgRequest request);

    /**
     * 智慧展厅登录
     */
    @PostMapping("security/showroom/login")
    ResultModel<ShowroomLoginResponse> showroomLogin(@RequestBody ShowroomLoginRequest request);

    /**
     * Ipad 微信扫码登录
     */
    @PostMapping("security/login/ipad/wx")
    ResultModel<LoginResponse> loginIpadWx(@RequestBody SecurityLoginIpadWxRequest request);

    /**
     * Ipad 密码登录
     */
    @PostMapping("security/login/ipad/pwd")
    ResultModel<LoginResponse> loginIpadPwd(@RequestBody SecurityLoginIpadPwdRequest request);

    /**
     * Admin登录
     */
    @PostMapping("security/login/admin")
    ResultModel<LoginAdminVo> loginAdmin(@RequestBody SecurityLoginAdminDto request);

    /**
     * CrmPc 通过Admin企业一键登录
     */
    @PostMapping("security/login/admin/company")
    ResultModel<LoginResponse> loginAdminCompany(@RequestBody SecurityLoginAdminCompanyRequest request);

    /**
     * CrmPc 微信扫码登录
     */
    @PostMapping("security/login/crm/pc/wx")
    ResultModel<LoginResponse> loginCrmPcWx(@RequestBody SecurityLoginCrmPcWxRequest request);

    /**
     * CrmPc 短信验证码登录
     */
    @PostMapping("security/login/crm/pc/phone")
    ResultModel<LoginResponse> loginCrmPcPhone(@RequestBody SecurityLoginCrmPcPhoneRequest request);

    /**
     * CrmApi 用户名密码登录
     */
    @PostMapping("security/login/crm/api/password")
    ResultModel<LoginResponse> loginCrmApiPassword(@RequestBody SecurityLoginCrmApiPasswordRequest request);

    /**
     * CrmApi 短信登录
     */
    @PostMapping("security/login/crm/api/sms")
    ResultModel<LoginResponse> loginCrmApiSms(@RequestBody SecurityLoginCrmApiPasswordRequest request);

    /**
     * CrmApi 微信第三方授权登录
     */
    @PostMapping("security/login/crm/api/wx")
    ResultModel<LoginResponse> loginCrmApiWx(@RequestBody SecurityLoginCrmApiWxRequest request);

    /**
     * CrmApp 微信第三方授权登录
     */
    @PostMapping("security/login/crm/api/wx2")
    ResultModel<LoginResponse> loginCrmApiWx2(@RequestBody SecurityLoginCrmApiWx2Request request);

    /**
     * CrmApp 短信登录
     */
    @PostMapping("security/login/crm/app/sms")
    ResultModel<LoginResponse> loginCrmAppSms(@RequestBody SecurityLoginCrmApiPasswordRequest request);

    /**
     * UserApi 微信小程序登录
     */
    @PostMapping("security/login/user/api/wx")
    ResultModel<LoginResponse> loginUserApiWx(@RequestBody SecurityLoginUserApiWxRequest request);

    /**
     * GzhApi 微信授权登录
     */
    @PostMapping("security/login/gzh/api/wx")
    ResultModel<SecurityLoginGzhApiResponse> loginGzhApiWx(@RequestBody SecurityLoginGzhApiRequest request);

    /**
     * JxsApi 用户名密码登录
     */
    @PostMapping("security/login/jxs/api/password")
    ResultModel<LoginResponse> loginJxsApiPassword(@RequestBody SecurityLoginJxsApiPasswordRequest request);

    /**
     * JxsApi 短信登录
     */
    @PostMapping("security/login/jxs/api/sms")
    ResultModel<LoginResponse> loginJxsApiSms(@RequestBody SecurityLoginJxsApiPasswordRequest request);

    /**
     * JxsApi 微信第三方授权登录
     */
    @PostMapping("security/login/jxs/api/wx")
    ResultModel<LoginResponse> loginJxsApiWx(@RequestBody SecurityLoginJxsApiWxRequest request);
}
